Processing files from a mobile device

ABSTRACT

The presently described subject matter allows the user to interactively browse a collection of electronic files, such as a digital photo collection, remotely using a mobile telephone. Files from the collection of electronic files can be directed from the mobile telephone to be sent to a remote display device, where the file can be displayed. Also, a user can record voice and text annotations from the mobile phone to preserve with an electronic file, and which is transported along with the file when it is displayed on a remote display device.

RELATED APPLICATIONS

This Application is a Continuation of, and claims benefit from, U.S.patent application Ser. No. 14/799,306, now U.S. Pat. No. 10,432,684,that was filed on Jul. 14, 2015 (Issued Oct. 1, 2019), and that is aContinuation of U.S. patent application Ser. No. 13/538,702, now U.S.Pat. No. 9,106,759, that was filed on Jun. 29, 2012 (Issued Aug. 11,2015), and that is a Continuation of U.S. patent application Ser. No.11/097,719, (U.S. Pat. No. 8,225,335) that was filed on Mar. 31, 2005(Issued Jul. 17, 2012), and that is a Non-Provisional of U.S.Provisional Patent Application No. 60/641,562 that was filed on Jan. 5,2005, each of which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The following description relates generally to mobile computing devices.More particularly, the following description relates to processing filesfrom a mobile computing device.

BACKGROUND

Mobile electronic devices provide many conveniences to users and,therefore, have become increasingly popular. However, such mobiledevices contain memory that is limited as a practical matter. Thislimitation prevents mobile device users from accessing the bulk of theirdigital files. For example, the convenience and low cost of moderndigital photography technology (digital cameras and/or camera phones)has led to a large portion of the public storing hundreds and thousandsof digital image files on their personal computers. But it is cumbersometo retrieve photos and to share them with others, and impossible if theuser is not using the computer directly. There are other types of filesas well—such as electronic presentation files—that would be convenientto access from mobile devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a general depiction of an exemplary network system.

FIG. 2 is a diagram depicting an exemplary system architecture formobile photo browsing, annotating and sharing.

FIG. 3 is a flow diagram that depicts an exemplary methodologicalimplementation of processing electronic files from a mobile device.

FIG. 4 is a block diagram depicting a general purpose computingenvironment that may be used in one or more implementations according tothe present description.

DETAILED DESCRIPTION Overview

The presently described subject matter provides a way for mobileelectronic device users to access and manipulate electronic files storedon a computer from their mobile device. Such files may include anydigital image files, video files, electronic presentation files,database files, etc. that a user may wish to have access to but are toolarge to be practically available in mobile device memory.

In at least one implementation described herein, a collection ofelectronic files can be browsed from a remote location using a mobiledevice, such as a mobile telephone. The files may also be shared withone or more other computers. For example, a user can interactivelybrowse their entire digital photo collection remotely and to share oneor more of these photos with another person's computing device, mobileor otherwise. This allows, for instance, a user to access his digitalphotos from a mobile telephone and display one or more of the photos ona display device at the user's (or at another) location.

In addition, it is currently somewhat cumbersome to associate a voice ortext annotation with a particular photo. In one or more implementationsdescribed herein, a user can quickly and easily record a voice or textannotation for a digital image file from a remote location. Theannotation is preserved with the image and is transported along with theimage in the event that the image is shared with others or displayed onanother display device.

Various systems, methods, computer-readable media, techniques, etc., aredescribed that provide several features, including but not necessarilylimited to the following features:

1. Capability to browse a remote collection of photos (or other types ofelectronic files) interactively, by keyword, date/date range, and byrepresentative thumbnails, on a mobile device such as a telephone;

2. Capability to record and play back voice annotations for items in theremote collection on the phone;

3. Capability to add text annotations to items in the remote collection;

4. Capability to share items in the remote collection with one or moreother computing devices;

5. Capability to send items in the remote collection to a differentremote display device, either located nearby or at a great distance, inreal time;

6. Capability to play back voice annotations for items in the remotecollection on different remote display device (other than the mobilephone which is directing the playback);

7. Capability at the computing device that stores the remote collectionto intelligently scale the size of the file (i.e. photo) and/or videobit rate and frame rate, or to transcode, or change the video encodingmethod, for the receiving device to reduce network bandwidthrequirements and take full advantage of the capabilities of the mobiledevice;

8. Capability to use keyword annotations applied to one photo to performsearches for related items in the collection; and

9. Capability to automatically send new pictures or other files createdon a mobile device, such as a camera phone, to the base computing deviceto be included as part of the main collection (“upload capability”).

Exemplary Network System

FIG. 1 is a general depiction of an exemplary network system 100. Thenetworks system 100 includes a base computing device 102 and a digitalcamera 104 connected to the base computing device 102. The basecomputing device 102 is a computing device, such as a personal computer,that includes a mass storage device, such as a hard disk drive (notshown), that is capable of storing a large amount of electronic files.

The base computing device 102 communicates via a network such as theInternet 106 or an Intranet to remote systems, such as one or more otherPCs 108 and one or more remote displays 110. The base computing device102 may also communicate with a mobile phone radio tower 112 of a mobilephone system via the Internet 106. In turn, the base computing device102 communicates with any mobile phone 114 that is configured tocommunicate with the mobile phone radio tower 112.

Exemplary System Architecture & Methodological Implementation

FIG. 2 is a diagram of an exemplary system architecture 200 inaccordance with the present disclosure. The exemplary systemarchitecture 200 includes a smart phone 202 that communicates with amobile data operator 204 via a mobile network 206. The mobile dataoperator 204 connects with a network (Internet 208).

A home PC 210 includes an operating system 211 and is configured tocommunicate with the smart phone 202 via the Internet 208. Althoughidentified as a home PC, the home PC 210 is any computing device thatcan store a large number of electronic files, such as digital imagefiles, on a mass storage device. One or more peripheral devices, such asa digital camera 212 in the present example, may be connected to thehome PC 210. The home PC 210 is also in communication with one or moreremote devices via the Internet 208. In the present example, the home PC210 communicates with a remote display 212 and one or more othercomputing devices 214.

An application 220 runs within an application framework 222 on the homePC 210 and is configured to locate digital photo files 224 stored on thehome PC 210. Although one or more examples used herein refer to digitalphoto files or digital image files, it is noted that the techniquesdescribed herein may be used with any other type of electronic file. Forexample, electronic slide presentation files may be stored on the homePC 210 and manipulated from a mobile device and/or displayed on a remotedisplay.

FIG. 3 is a flow diagram that depicts an exemplary methodologicalimplementation of processing electronic files from a mobile device. Inthe following discussion, FIG. 2 and FIG. 3 will be concurrentlydescribed to discuss exemplary elements/configurations shown in FIG. 2and exemplary process steps shown in FIG. 3 .

At block 302, the application 220 locates the digital photo files 224stored on the home PC 210. The application 220 creates a database 225and index 227 of the photos with any associated text/keyword annotationsand/or voice annotations (block 304). At block 306, the application 220listens on the network (Internet 208) for incoming connections over theInternet 208 from the smart phone 202, or other display devices runningan appropriate application.

When a device (phone or other PC or display device) connects (“Yes”branch, block 308), the device is authenticated using a password orother method at block 310. As long as no connection is detected (“No”branch, block 308), the application 220 continues to monitor the networkconnection for incoming connections.

The device (i.e. the smart phone 202) submits one or more commands tothe home PC 210 to perform functions such as sending a list of keywordsto the device, sending a particular photo to the device, store a voicerecording from the device about a particular photo, etc. (block 312). Atblock 314, the home PC 210 executes the commands received at block 312and transmits data and/or files to the device (or some other device) asrequired by the received commands.

If more commands are detected (“Yes” branch, block 316), then theprocess reverts to block 312 where the commands are received andprocessed. The process terminates if there are no other commands toreceive and process (“No” branch, block 316).

The smart phone 202 includes a photo application 230 within anapplication framework 232. The smart phone 202 also includes a mobileoperating system 234, a radio stack 236 and miscellaneous phone radiohardware 238. The photo application 230 is configured to run on thesmart phone 208 which connects (e.g. through a cellular data network(e.g. GPRS)) to the Internet 208, and via the Internet 208 to the homePC 210. The application 230 sends a password to authenticate a smartphone user. Through a user interface (not shown) on the phone, the usercan browse through the photo collection 224 stored on the home PC 210.

Said browsing can be performed by keyword, by viewing a list of keywordsand typing out parts of the keywords on the phone's keypad, or byrepresentative thumbnails—where the home PC 210 sends the smart phone202 a thumbnail corresponding to each keyword known to the application230. The user then uses the phones keypad to select a thumbnail and thehome PC application 220 is configured to then perform a search for itemsmatching that keyword, and send the matching items to the smart phone202.

Through the smart phone/application user interface (not shown), the usercan step through the photos in the search result set and/or can examinemetadata (keyword annotations, camera-created data such as date taken,image parameters, etc.). The user can retrieve voice annotationsrecorded for a photo and/or add new keywords by entering them using thephone's keypad. The user can record new voice annotations using thesmart phone 202 and the new voice annotations are transmitted backthrough the data network (i.e. Internet 208) to the home PC 210 andstored for future retrieval.

Additional computing devices (e.g. computing devices 214) and displaydevices (e.g. remote display 212) can connect via the Internet 208 tothe same photo server application 220 on the home PC 210, and canperform some of the retrieval and browsing operations. When a displaydevice 212 is connected to the home PC 210 in such a way, the user canuse the smart phone 202 to send (push) a photo directly to the displaydevice 212. In this way, a “slide show” depicting the electronic filescan be operated from the smart phone 202, where the viewing takes placeon the remote display 212. Since the display device 212 and home PC 210are connected by the Internet 208, there is no requirement that the homePC 210, the smart phone 202 and/or the display device 212 be inproximity of each other. In fact, it is expected that a common usagescenario will be for a user to direct the slide show where the displaydevice 212 is in another location entirely, perhaps at the remote end ofa long-distance phone call in which the user of the smart phone 202 isparticipating.

The photo server application 220 on the home PC 210 uses informationabout a display (either a smart phone 202 display (not shown)) or otherdisplay device 212, 214 to appropriately scale the size and quality ofthe photo to make best use of the network used for transmission. Forexample, if the smart phone 202 has a display size of 176×220, theapplication 220 scales down each photo to that size and uses an imagecompression mechanism with an image quality parameter to reduce the sizein bytes of the transmitted image data to only a few kilobytes which canbe transmitted in just a few seconds via the GPRS network. For a largerdisplay device such as a laptop computer, the image is pre-scaled to thesize of the laptop's display panel, and compressed to take advantage ofthe faster broadband Internet connection.

Several functions are provided from the smart phone 202. The functionsinclude, but are not limited to:

-   -   (1) Performing keyword searches on the photo database;    -   (2) Looking at the photos in a search result list;    -   (3) Retrieving and viewing the keywords and metadata for photos;    -   (4) Easily run related queries for keywords attached to a photo;    -   (5) Retrieving voice annotations stored with a photo;    -   (6) Recording new voice annotations for a photo and sending them        to the remote database;    -   (7) Zooming into a portion of a photo (the zooming is done at        the server and only the zoomed portion is sent over the network,        again using the intelligent scaling and compression to reduce        transmission time and bandwidth used);

(8) Viewing an index of thumbnails of either the current query resultset, or of thumbnails representing the keywords which can be searched;

(9) Emailing a photo to a contact stored in the phone, or an emailaddress entered using the phone keypad—the phone instructs the home PC210 to actually send the email with the full or partial image which is abetter use of bandwidth than transmitting the larger photo over the GPRSnetwork—the email can optionally include a yoke annotation and a textmessage entered on the phone;

(10) Submitting the photo for printing by a digital printing service andmailing the finished print to the user or to the address stored in acontact on the phone; and

(11) Performing date-based queries to locate items in the collection.

Exemplary Operating Environment

FIG. 4 is a block diagram depicting a general purpose computingenvironment 400 that may be used in one or more implementationsaccording to the present description. The computing system environment400 is only one example of a suitable computing environment and is notintended to suggest any limitation as to the scope of use orfunctionality of the claimed subject matter. Neither should thecomputing environment 400 be interpreted as having any dependency orrequirement relating to any one or combination of components illustratedin the exemplary operating environment 400.

The described techniques and objects are operational with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well known computing systems, environments,and/or configurations that may be suitable for use include, but are notlimited to, personal computers, server computers, hand-held or laptopdevices, multiprocessor systems, microprocessor-based systems, set topboxes, programmable consumer electronics, network PCs, minicomputers,mainframe computers, distributed computing environments that include anyof the above systems or devices, and the like.

The following description may be couched in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Thedescribed implementations may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices.

With reference to FIG. 4 , an exemplary system for implementing theinvention includes a general purpose computing device in the form of acomputer 410. Components of computer 410 may include, but are notlimited to, a processing unit 420, a system memory 430, and a system bus421 that couples various system components including the system memoryto the processing unit 420. The system bus 421 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

Computer 410 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 410 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modifies or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canbe accessed by computer 410. Communication media typically embodiescomputer readable instructions, data structures, program modules orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of the any of the above should also beincluded within the scope of computer readable media.

The system memory 430 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 431and random access memory (RAM) 432. A basic input/output system 433(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 410, such as during start-up, istypically stored in ROM 431. RAM 432 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 420. By way of example, and notlimitation, FIG. 4 illustrates operating system 434, applicationprograms 435, other program modules 436, and program data 437.

The computer 410 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 4 illustrates a hard disk drive 441 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 451that reads from or writes to a removable, nonvolatile magnetic disk 452,and an optical disk drive 455 that reads from or writes to a removable,nonvolatile optical disk 456 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 441 is typically connectedto the system bus 421 through anon-removable memory interface such asinterface 440, and magnetic disk drive 451 and optical disk drive 455are typically connected to the system bus 421 by a removable memoryinterface, such as interface 450.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 4 , provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 410. In FIG. 4 , for example, hard disk drive 441 isillustrated as storing operating system 444, application programs 445,other program modules 446, and program data 447. Note that thesecomponents can either be the same as or different from operating system434, application programs 435, other program modules 436, and programdata 437. Operating system 444, application programs 445, other programmodifies 446, and program data 447 are given different numbers here toillustrate that, at a minimum, they are different copies. A user mayenter commands and information into the computer 410 through inputdevices such as a keyboard 462 and pointing device 461, commonlyreferred to as a mouse, trackball or touch pad. Other input devices (notshown) may include a microphone, joystick, game pad, satellite dish,scanner, or the like. These and other input devices are often connectedto the processing unit 420 through a user input interface 460 that iscoupled to the system bus 421, but may be connected by other interfaceand bus structures, such as a parallel port, game port or a universalserial bus (USB). A monitor 491 or other type of display device is alsoconnected to the system bus 421 via an interface, such as a videointerface 490. In addition to the monitor, computers may also includeother peripheral output devices such as speakers 497 and printer 496,which may be connected through an output peripheral interface 495. Ofparticular significance to the present invention, a camera 463 (such asa digital/electronic still or video camera, or film/photographicscanner) capable of capturing a sequence of images 464 can also beincluded as an input device to the personal computer 410. Further, whilejust one camera is depicted, multiple cameras could be included as aninput device to the personal computer 410. The images 464 from the oneor more cameras are input into the computer 410 via an appropriatecamera interface 465. This interface 465 is connected to the system bus421, thereby allowing the images to be routed to and stored in the RAM432, or one of the other data storage devices associated with thecomputer 410. However, it is noted that image data can be input into thecomputer 410 from any of the aforementioned computer-readable media aswell, without requiring the use of the camera 463.

The computer 410 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer480. The remote computer 480 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 410, although only a memory storage device 481 has beenillustrated in FIG. 4 . The logical connections depicted in FIG. 4include a local area network (LAN) 471 and a wide area network (WAN)473, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 410 is connectedto the LAN 471 through a network interface or adapter 470. When used ina WAN net environment, the computer 410 typically includes a modem 472or other means for establishing communications over the WAN 473, such asthe Internet. The modem 472, which may be internal or external, may beconnected to the system bus 421 via the user input interface 460, orother appropriate mechanism. In a networked environment, program modulesdepicted relative to the computer 410, or portions thereof, may bestored in the remote memory storage device. By way of example, and notlimitation, FIG. 4 illustrates remote application programs 485 asresiding on memory device 481, it will be appreciated that the networkconnections shown are exemplary and other means of establishing acommunications link between the computers may be used.

Conclusion

While one or more exemplary implementations have been illustrated anddescribed, it will be appreciated that various changes can be madetherein without departing from the spirit and scope of the claimsappended hereto.

The invention claimed is:
 1. A system including one or more processorsfor processing files from a mobile device, the system comprising: acomputing device configured to store a collection of files, wherein thecollection of files stored on the computing device is configured forbeing browsed via the mobile device, and to transmit a file selected bythe mobile device to a display device separate from the mobile deviceand different from a display of the computing device in response to oneor more commands submitted to the computing device by the mobile device,wherein there is no requirement that the display device and thecomputing device be in proximity of each other, that the display deviceand the mobile device be in proximity of each other, or that thecomputing device and the mobile device be in proximity of each other. 2.The system according to claim 1, wherein the mobile device is in a firstlocation and the display device is in a second location different fromthe first location.
 3. The system according to claim 1, wherein thecomputing device is configured to scale a size of the file prior toinformation from the file being depicted by the display device.
 4. Thesystem according to claim 1, wherein the computing device is configuredto scale a quality of the file prior to information from the file beingdepicted by the display device.
 5. The system according to claim 1,wherein the computing device is configured to store an annotation to afile in the collection of files.
 6. The system according to claim 5,wherein the annotation is created by the mobile device and sent to thecomputing device by the mobile device.
 7. The system according to claim5, wherein the annotation is a text or voice annotation.
 8. The systemaccording to claim 5, wherein the computing device is configured totransmit the annotation to the display device.
 9. A method forprocessing files from a mobile device comprising: storing, by acomputing device, a collection of files, wherein the collection of filesstored on the computing device is configured for being browsed via themobile device; and transmitting, by the computing device, a fileselected by the mobile device to a display device separate from themobile device and different from a display of the computing device inresponse to one or more commands submitted to the computing device bythe mobile device, wherein there is no requirement that the displaydevice and the computing device be in proximity of each other, that thedisplay device and the mobile device be in proximity of each other, orthat the computing device and the mobile device be in proximity of eachother.
 10. The method according to claim 9, wherein the mobile device isin a first location and the display device is in a second locationdifferent from the first location.
 11. The method according to claim 9,further comprising scaling, by the computing device, a size of the fileprior to information from the file being depicted by the display device.12. The method according to claim 9, further comprising scaling, by thecomputing device, a quality of the file prior to information from thefile being depicted by the display device.
 13. The method according toclaim 9, further comprising storing, by the computing device, anannotation to a file in the collection of files.
 14. The methodaccording to claim 13, wherein the annotation is created by the mobiledevice and sent to the computing device by the mobile device.
 15. Themethod according to claim 13, wherein the annotation is a text or voiceannotation.
 16. The method according to claim 13, further comprisingtransmitting, by the computing device, the annotation to the displaydevice.
 17. A computing device including one or more processors forprocessing files from a mobile device, the computing device comprising:memory that comprises computer-executable instructions that, based onexecution by the computing device, cause the computing device to: storea collection of files, wherein the collection of files stored on thecomputing device is configured for being browsed via the mobile device;and transmit a file selected by the mobile device to a display deviceseparate from the mobile device and different from a display of thecomputing device in response to one or more commands submitted to thecomputing device by the mobile device, where there is no requirementthat the display device and the computing device be in proximity of eachother, that the display device and the mobile device be in proximity ofeach other, or that the computing device and the mobile device be inproximity of each other.
 18. The computing device according to claim 17,wherein the mobile device is in a first location and the display deviceis in a second location different from the first location.